//=============================================================================

#ifndef ALABYRINTH_H
  #define ALABYRINTH_H

//=============================================================================

#include "doCommon.h"

//=============================================================================

enum alhWays
{
	WAY_NOWAY = 0,
  WAY_WEST = 1,
  WAY_NORTH = 2,
  WAY_EAST = 4,
  WAY_SOUTH = 8
};

//=============================================================================

enum alhSize
{
  LS_MINI = 0,
  LS_STD,
  LS_BIG,
  LS_HUGE,
};

//=============================================================================

class aCrossroad
{
  public:
    aCrossroad() {flags = 0; type = WAY_WEST;}
    ~aCrossroad() {}

    aVector pos;
    /*
    00000001 - WEST
    00000010 - NORTH
    00000100 - EAST
    00001000 - SOUTH
    */
    char flags;
    alhWays type;
};

//=============================================================================

class aLabyrinth
{
  public:
    aLabyrinth();
      void alGenerateLabyrinth(alhSize _size);
      void alDrawLabyrinth();
      void alClearLabyrinth();
    ~aLabyrinth();

  private:

  private:
    alhSize size;
    int sizes[4];
    float minRadius[4];
    unsigned short crsMax[4];
    aList<aCrossroad> crossroads;
};

//=============================================================================

#endif

//=============================================================================
